home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / demos / VisualAge for Java 2.0 Entry / setup / data1.cab / ide-e / IDE / cache / 1MNJKYG (.txt) < prev    next >
Encoding:
Java Class File  |  1998-09-16  |  2.1 KB  |  106 lines

  1. package com.sun.java.swing;
  2.  
  3. import java.util.Enumeration;
  4. import java.util.Hashtable;
  5.  
  6. class MultiUIDefaults extends UIDefaults {
  7.    private UIDefaults[] tables;
  8.  
  9.    public MultiUIDefaults() {
  10.       this.tables = new UIDefaults[0];
  11.    }
  12.  
  13.    public MultiUIDefaults(UIDefaults[] defaults) {
  14.       this.tables = defaults;
  15.    }
  16.  
  17.    public void clear() {
  18.       super.clear();
  19.  
  20.       for(int i = 0; i < this.tables.length; ++i) {
  21.          UIDefaults table = this.tables[i];
  22.          if (table != null) {
  23.             ((Hashtable)table).clear();
  24.          }
  25.       }
  26.  
  27.    }
  28.  
  29.    public Enumeration elements() {
  30.       Enumeration[] enums = new Enumeration[1 + this.tables.length];
  31.       enums[0] = super.elements();
  32.  
  33.       for(int i = 0; i < this.tables.length; ++i) {
  34.          UIDefaults table = this.tables[i];
  35.          if (table != null) {
  36.             enums[i + 1] = ((Hashtable)table).elements();
  37.          }
  38.       }
  39.  
  40.       return new MultiUIDefaultsEnumerator(enums);
  41.    }
  42.  
  43.    public Object get(Object key) {
  44.       Object value = super.get(key);
  45.       if (value != null) {
  46.          return value;
  47.       } else {
  48.          for(int i = 0; i < this.tables.length; ++i) {
  49.             UIDefaults table = this.tables[i];
  50.             value = table != null ? table.get(key) : null;
  51.             if (value != null) {
  52.                return value;
  53.             }
  54.          }
  55.  
  56.          return null;
  57.       }
  58.    }
  59.  
  60.    public boolean isEmpty() {
  61.       return this.size() == 0;
  62.    }
  63.  
  64.    public Enumeration keys() {
  65.       Enumeration[] enums = new Enumeration[1 + this.tables.length];
  66.       enums[0] = super.keys();
  67.  
  68.       for(int i = 0; i < this.tables.length; ++i) {
  69.          UIDefaults table = this.tables[i];
  70.          if (table != null) {
  71.             enums[i + 1] = ((Hashtable)table).keys();
  72.          }
  73.       }
  74.  
  75.       return new MultiUIDefaultsEnumerator(enums);
  76.    }
  77.  
  78.    public Object remove(Object key) {
  79.       Object value = super.remove(key);
  80.       if (value != null) {
  81.          return value;
  82.       } else {
  83.          for(int i = 0; i < this.tables.length; ++i) {
  84.             UIDefaults table = this.tables[i];
  85.             value = table != null ? ((Hashtable)table).remove(key) : null;
  86.             if (value != null) {
  87.                return value;
  88.             }
  89.          }
  90.  
  91.          return null;
  92.       }
  93.    }
  94.  
  95.    public int size() {
  96.       int n = super.size();
  97.  
  98.       for(int i = 0; i < this.tables.length; ++i) {
  99.          UIDefaults table = this.tables[i];
  100.          n += table != null ? ((Hashtable)table).size() : 0;
  101.       }
  102.  
  103.       return n;
  104.    }
  105. }
  106.